/**
 * 用户头像管理工具
 * 为登录用户提供固定的头像显示
 */

import { getTempFileURL } from './util.js';

// 云存储环境配置
const ENV_ID = 'cloud1-6g22e569b6b129d5';
const BASE_CLOUD_PATH = `cloud://${ENV_ID}.636c-cloud1-6g22e569b6b129d5-1380223701`;

// 登录用户的固定头像路径
const USER_AVATAR_PATH = `${BASE_CLOUD_PATH}/static/image1.png`;

/**
 * 获取登录用户的头像URL
 * @returns {Promise<string>} 头像临时URL
 */
export async function getLoginUserAvatar() {
  try {
    const tempUrl = await getTempFileURL(USER_AVATAR_PATH);
    return tempUrl;
  } catch (error) {
    console.error('获取登录用户头像失败:', error);
    return '';
  }
}

/**
 * 检查用户是否已登录并获取其头像
 * @returns {Promise<string>} 如果已登录返回头像URL，否则返回空字符串
 */
export async function getCurrentUserAvatar() {
  try {
    // 检查用户是否已登录
    const userInfo = wx.getStorageSync('user_info');
    const token = wx.getStorageSync('access_token');
    
    if (!userInfo || !token) {
      return '';
    }
    
    // 返回固定的登录用户头像
    return await getLoginUserAvatar();
  } catch (error) {
    console.error('获取当前用户头像失败:', error);
    return '';
  }
}

/**
 * 为登录后的用户信息设置头像
 * @param {Object} userInfo 用户信息对象
 * @returns {Promise<Object>} 包含头像URL的用户信息
 */
export async function setUserAvatarUrl(userInfo) {
  if (!userInfo) {
    return userInfo;
  }
  
  try {
    const avatarUrl = await getLoginUserAvatar();
    return {
      ...userInfo,
      avatar: avatarUrl,
      avatarUrl: avatarUrl // 备用字段
    };
  } catch (error) {
    console.error('设置用户头像失败:', error);
    return userInfo;
  }
}

/**
 * 刷新用户头像（重新获取临时URL）
 * 当临时URL过期时可以调用此方法
 * @returns {Promise<string>} 新的头像临时URL
 */
export async function refreshUserAvatar() {
  try {
    const userInfo = wx.getStorageSync('user_info');
    if (userInfo) {
      const newAvatarUrl = await getLoginUserAvatar();
      userInfo.avatar = newAvatarUrl;
      userInfo.avatarUrl = newAvatarUrl;
      wx.setStorageSync('user_info', userInfo);
      return newAvatarUrl;
    }
    return '';
  } catch (error) {
    console.error('刷新用户头像失败:', error);
    return '';
  }
} 